In creating a computer program, a library interface, which is an interface for calling out a library, links the library and the computer program so as to import a function provided by the library to the computer program. The library interface is conventionalized as a standard specification in order to realize compatibility with a predetermined standard and to facilitate porting to another platform. An example of the standard specification includes an MPI (Message Passing Interface). Functions provided by the conventionalized library interface are generalized and abstracted to improve the compatibility and the portability. The generalization and abstraction of functions denote providing a plurality of processes executed in the library as one function to a program for using the library. As a result, considering an implementation of more efficient processing of the provided functions, the information obtained by the library interface may not be sufficient in selecting a processing algorithm. For example, the library interface does not provide sufficient information for a requested selection in an access pattern of a file I/O, a communication algorithm in network communication, and the like. More specifically, even if a plurality of algorithms for attaining one processing object are prepared, the library interface does not provide means for selecting the algorithm.
An example of a conventional solution to the problem includes a method in which a program as a call-out source of a library presents additional information called an environment variable to the library. In the method, a creator or an executioner of a call-out source program presents additional information related to an item defined in the implementation of the library. The additional information is provided to the library as an argument upon execution, and as a result, an internal processing algorithm of the library can be changed.    Patent Document 1: Japanese Laid-Open Patent Publication No. 2007-109044    Patent Document 2: Japanese Laid-Open Patent Publication No. 11-212837    Patent Document 3: Japanese Laid-Open Patent Publication No. 9-101899